/* Copyright (c) 2016-2020 Enfry Ltd. All Rights Reserved.
 * 
 * This software is the confidential and proprietary information of Enfry. 
 * You shall not disclose such Confidential Information
 * and shall use it only in accordance with the terms of the agreements
 * you entered into with Enfry.
 */
package com.enfry.common.util;


/**
 * 位运算工具类
 * 1.左为高，右为低
 * 2.高1位表示左边第一位=低8位
 * @Title com.enfry.util.Bits
 * @author Penghu
 * @date 2016年11月10日
 */
public class Bits
{
    /**
     * 判断字节指定的位上是不是0
     * 
     * @param ib  字节
     * @param hpos 高第1-8之间
     * @return =true表示是，=false表示否
     */
    public static boolean isZero(byte ib, int hpos)
    {
        return ((ib >>> (8-hpos)) & 0x00000001) == 0;
    }
    
    /**
     * 判断字节指定的位上是不是1
     * 
     * @param ib  字节
     * @param hpos 高第1-8之间
     * @return =true表示是，=false表示否
     */
    public static boolean isOne(byte ib, int hpos)
    {
        return ((ib >>> (8-hpos)) & 0x00000001) == 1;
    }
    
    /**
     * 把有符号字节转换成无符号整数
     * 
     * @param ib    字节
     * @return      无符号整数
     */
    public static int unsigned(byte ib)
    {
        return ib & 0xFF;
    }
}
